package com.wicket.okrframework.biz.service.dto.res;


import com.wicket.okrframework.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Objects;


@Data
public class OrgInductionRecordDto extends BaseDto implements Serializable {

    /**
     * 就职记录ID:
     */
    @ApiModelProperty("就职记录ID")
    private String inductionRecordId;

    /**
     * 身份人员ID:
     */
    @ApiModelProperty("身份人员ID")
    private String originalRoleMemberId;

    /**
     * 个人账号ID:
     */
    @ApiModelProperty("个人账号ID")
    private String userId;

    /**
     * 真实头像:
     */
    @ApiModelProperty("真实头像")
    private String userFace;

    /**
     * 真实姓名:
     */
    @ApiModelProperty("真实姓名")
    private String idCardName;

    /**
     * 用户昵称:
     */
    @ApiModelProperty("用户昵称")
    private String nickName;

    /**
     * 身份人员编号:
     */
    @ApiModelProperty("身份人员编号")
    private String roleMemberCode;

    /**
     * 必选冗余职务名称:
     */
    @ApiModelProperty("必选冗余职务名称")
    private String positionIdName;

    /**
     * 是否兼职:
     */
    @ApiModelProperty("是否兼职")
    private String isPtJob;

    /**
     * 组织ID:
     */
    @ApiModelProperty("组织ID")
    private String organizationId;

    /**
     * 冗余组织名称:
     */
    @ApiModelProperty("冗余组织名称")
    private String organizationName;

    /**
     * 就职单位对象实例ID:
     */
    @ApiModelProperty("就职单位对象实例ID")
    private String entityId;

    /**
     * 冗余部门名称:
     */
    @ApiModelProperty("冗余部门名称")
    private String deptShortName;
    /**
     * 就职单位类型实例:
     */
    @ApiModelProperty("就职单位类型实例")
    private String inductionUnitTypeCode;
    /**
     * 部门标识:
     */
    @ApiModelProperty("部门标识")
    private String deptCode;
    /**
     * 层级:
     */
    @ApiModelProperty("层级")
    private Long levelNumber;
    /**
     * 是否主岗:
     */
    @ApiModelProperty("是否主岗")
    private String isMainInduction;
    /**
     * 职务性质:
     */
    @ApiModelProperty("职务性质")
    private String positionType;
    /**
     * 编制ID:
     */
    @ApiModelProperty("编制ID")
    private String staffingId;
    /**
     * 冗余职务名称ID:
     */
    @ApiModelProperty("冗余职务名称ID")
    private String positionIdNameId;
    /**
     * 个人职务排序:
     */
    @ApiModelProperty("个人职务排序")
    private Long positionOrderNumber;
    /**
     * 冗余可选职务ID:
     */
    @ApiModelProperty("冗余可选职务ID")
    private String positionId;
    /**
     * 冗余部门职务关系ID:
     */
    @ApiModelProperty("冗余部门职务关系ID")
    private String deptPositionRelationshipId;
    /**
     * 冗余可选职务级别ID:
     */
    @ApiModelProperty("冗余可选职务级别ID")
    private String positionGradeId;
    /**
     * 冗余职务级别名称:
     */
    @ApiModelProperty("冗余职务级别名称")
    private String positionGradeName;
    /**
     * 冗余职务类别字典ID:
     */
    @ApiModelProperty("冗余职务类别字典ID")
    private String typeDictionaryId;
    /**
     * 冗余职务字典名称:
     */
    @ApiModelProperty("冗余职务字典名称")
    private String typeDictionaryName;
    /**
     * 冗余可选岗位ID:
     */
    @ApiModelProperty("冗余可选岗位ID")
    private String stationId;
    /**
     * 冗余可选职位ID:
     */
    @ApiModelProperty("冗余可选职位ID")
    private String postId;
    /**
     * 冗余岗位名称:
     */
    @ApiModelProperty("冗余岗位名称")
    private String stationName;
    /**
     * 冗余职位名称:
     */
    @ApiModelProperty("冗余职位名称")
    private String postName;
    /**
     * 冗余可选岗位类型ID:
     */
    @ApiModelProperty("冗余可选岗位类型ID")
    private String stationTypeId;
    /**
     * 冗余岗位类型名称:
     */
    @ApiModelProperty("冗余岗位类型名称")
    private String stationTypeName;
    /**
     * 冗余可选岗位等级ID:
     */
    @ApiModelProperty("冗余可选岗位等级ID")
    private String stationGradeId;
    /**
     * 冗余岗位等级名称（融合别名）:
     */
    @ApiModelProperty("冗余岗位等级名称（融合别名）")
    private String stationGradeName;
    /**
     * 可选主管就职记录ID:
     */
    @ApiModelProperty("可选主管就职记录ID")
    private String directorInductionRecordId;
    /**
     * 冗余职务角色编码:
     */
    @ApiModelProperty("冗余职务角色编码")
    private String positionRoleCode;
    /**
     * 个人资料记录ID:
     */
    @ApiModelProperty("个人资料记录ID")
    private String personalDataId;
    /**
     * 角色标识:
     */
    @ApiModelProperty("关联角色编码")
    private String roleCode;
    /**
     * 备注首位字母:
     */
    @ApiModelProperty("备注首位字母")
    private String firstLetter;
    /**
     * 部门成员排序:
     */
    @ApiModelProperty("部门成员排序")
    private Long deptMemberOrderNumber;
    /**
     * 批次下更新状态:
     */
    @ApiModelProperty("批次下更新状态")
    private String updateStatus;
    /**
     * 是否异动:
     */
    @ApiModelProperty("是否异动")
    private String isTransaction;
/**
     * 排序 
     */
    @ApiModelProperty("排序")
    private Long	 orderNumber;
/**
     * 是否主管 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否主管")
    private String	 isDirector;
/**
     * 部门业务身份 EDUCATIONAL_ADMINISTRATION:教务 TEACHING_DEPARTMENT:教学部门 LEARNING_INDUSTRIAL_PRODUCTION:学工 PERSONNEL_MATTERS:人事 FINANCE:财务 SCHOOL_LEADER:校领导
     */
    @ApiModelProperty("部门业务身份")
    private String	 deptBusinessIdentity;
/**
     * 冗余一级部门ID
     */
    @ApiModelProperty("冗余一级部门ID")
    private String	 primaryDeptId;

    @Override
  public boolean equals(Object o) {
      if (this == o) return true;
      if (o == null || getClass() != o.getClass()) return false;
      if (!super.equals(o)) return false;
      OrgInductionRecordDto that = (OrgInductionRecordDto) o;
      return  inductionRecordId == that.inductionRecordId&&originalRoleMemberId == that.originalRoleMemberId&&userId == that.userId&&userFace == that.userFace&&idCardName == that.idCardName&&nickName == that.nickName&&roleMemberCode == that.roleMemberCode&&positionIdName == that.positionIdName&&isPtJob == that.isPtJob&&organizationId == that.organizationId&&organizationName == that.organizationName&&entityId == that.entityId&&deptShortName == that.deptShortName&&inductionUnitTypeCode == that.inductionUnitTypeCode&&deptCode == that.deptCode&&levelNumber == that.levelNumber&&isMainInduction == that.isMainInduction&&positionType == that.positionType&&staffingId == that.staffingId&&positionIdNameId == that.positionIdNameId&&positionOrderNumber == that.positionOrderNumber&&positionId == that.positionId&&deptPositionRelationshipId == that.deptPositionRelationshipId&&positionGradeId == that.positionGradeId&&positionGradeName == that.positionGradeName&&typeDictionaryId == that.typeDictionaryId&&typeDictionaryName == that.typeDictionaryName&&stationId == that.stationId&&postId == that.postId&&stationName == that.stationName&&postName == that.postName&&stationTypeId == that.stationTypeId&&stationTypeName == that.stationTypeName&&stationGradeId == that.stationGradeId&&stationGradeName == that.stationGradeName&&directorInductionRecordId == that.directorInductionRecordId&&positionRoleCode == that.positionRoleCode&&personalDataId == that.personalDataId&&roleCode == that.roleCode&&firstLetter == that.firstLetter&&deptMemberOrderNumber == that.deptMemberOrderNumber&&updateStatus == that.updateStatus&&isTransaction == that.isTransaction&&orderNumber == that.orderNumber&&isDirector == that.isDirector&&deptBusinessIdentity == that.deptBusinessIdentity&&primaryDeptId == that.primaryDeptId;
    }

    @Override
  public int hashCode() {
      return Objects.hash(super.hashCode(), inductionRecordId,originalRoleMemberId,userId,userFace,idCardName,nickName,roleMemberCode,positionIdName,isPtJob,organizationId,organizationName,entityId,deptShortName,inductionUnitTypeCode,deptCode,levelNumber,isMainInduction,positionType,staffingId,positionIdNameId,positionOrderNumber,positionId,deptPositionRelationshipId,positionGradeId,positionGradeName,typeDictionaryId,typeDictionaryName,stationId,postId,stationName,postName,stationTypeId,stationTypeName,stationGradeId,stationGradeName,directorInductionRecordId,positionRoleCode,personalDataId,roleCode,firstLetter,deptMemberOrderNumber,updateStatus,isTransaction,orderNumber,isDirector,deptBusinessIdentity,primaryDeptId);
    }
}
